/**
 * 自动生成！请勿修改！
 */
import { command } from '../core/command';

class SmartVideoDoorbell {
    constructor(opt = {}) {
        const { device, to, ...opts } = opt;

        this.device = device || {};
        this.opts = opts || {};
        this._to = to;
    }

    get categoryCode() {
        return '010020011';
    }

    get categoryName() {
        return '\u667a\u80fd\u53ef\u89c6\u95e8\u94c3';
    }

    getCameraSwitch(params) {
        return command({
            method: 'getCameraSwitch',
            methodId: 'U5sud183',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getDetectionSensitivity(params) {
        return command({
            method: 'getDetectionSensitivity',
            methodId: 'UHwweWhb',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getDoorbellAudio(params) {
        return command({
            method: 'getDoorbellAudio',
            methodId: 'UCb2CoHG',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getDoorbellStatus(params) {
        return command({
            method: 'getDoorbellStatus',
            methodId: 'pWG0ZCTU',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getFrontMotionAlarm(params) {
        return command({
            method: 'getFrontMotionAlarm',
            methodId: 'UnfcAAjC',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getIndoorMicSwitch(params) {
        return command({
            method: 'getIndoorMicSwitch',
            methodId: 'U8O3cvdL',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getIndoorSpeakerSwitch(params) {
        return command({
            method: 'getIndoorSpeakerSwitch',
            methodId: 'URPrGNPS',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getIndoorSpeakerVolume(params) {
        return command({
            method: 'getIndoorSpeakerVolume',
            methodId: 'U9KmSk4V',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getInfraredNightVision(params) {
        return command({
            method: 'getInfraredNightVision',
            methodId: 'UJTjmpjI',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getLiveShot(params) {
        return command({
            method: 'getLiveShot',
            methodId: 'UDimKCaE',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getLiveVideo(params) {
        return command({
            method: 'getLiveVideo',
            methodId: 'UiWTUhTz',
            params,
            to: this.to?.[this.i] || this.to,
            timeout: 1800,
        });
    }

    getOutdoorMicSwitch(params) {
        return command({
            method: 'getOutdoorMicSwitch',
            methodId: 'UaMC6y9r',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getOutdoorSpeakerSwitch(params) {
        return command({
            method: 'getOutdoorSpeakerSwitch',
            methodId: 'UODe0iod',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getOutdoorSpeakerVolume(params) {
        return command({
            method: 'getOutdoorSpeakerVolume',
            methodId: 'UvxDsHGZ',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getRecord(params) {
        return command({
            method: 'getRecord',
            methodId: 'UZ6DrBDW',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getShot(params) {
        return command({
            method: 'getShot',
            methodId: 'UlyCT6Co',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getTalkbackSwitch(params) {
        return command({
            method: 'getTalkbackSwitch',
            methodId: 'UmaShjaA',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getTamperAlarmStatus(params) {
        return command({
            method: 'getTamperAlarmStatus',
            methodId: 'UsRcDIqk',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getTamperAlarmSwitch(params) {
        return command({
            method: 'getTamperAlarmSwitch',
            methodId: 'U2eM4zzq',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    getWorkingMode(params) {
        return command({
            method: 'getWorkingMode',
            methodId: 'UfjZPRFx',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setCameraSwitch(params) {
        return command({
            method: 'setCameraSwitch',
            methodId: 'pghzWktW',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setDetectionSensitivity(params) {
        return command({
            method: 'setDetectionSensitivity',
            methodId: 'pdN73u8E',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setDoorbellAudio(params) {
        return command({
            method: 'setDoorbellAudio',
            methodId: 'phEq11Bz',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setEndCall(params) {
        return command({
            method: 'setEndCall',
            methodId: 'pz93pgKM',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setIndoorMicSwitch(params) {
        return command({
            method: 'setIndoorMicSwitch',
            methodId: 'pGox7x91',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setIndoorSpeakerSwitch(params) {
        return command({
            method: 'setIndoorSpeakerSwitch',
            methodId: 'p1vFBboo',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setIndoorSpeakerVolume(params) {
        return command({
            method: 'setIndoorSpeakerVolume',
            methodId: 'pDrhEqGR',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setInfraredNightVision(params) {
        return command({
            method: 'setInfraredNightVision',
            methodId: 'UUUlHQlR',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setOutdoorMicSwitch(params) {
        return command({
            method: 'setOutdoorMicSwitch',
            methodId: 'ppAXijTb',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setOutdoorSpeakerSwitch(params) {
        return command({
            method: 'setOutdoorSpeakerSwitch',
            methodId: 'pUPQOyrq',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setOutdoorSpeakerVolume(params) {
        return command({
            method: 'setOutdoorSpeakerVolume',
            methodId: 'pZgRtGmk',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setStartCall(params) {
        return command({
            method: 'setStartCall',
            methodId: 'pkp1X0Fn',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setStartReceiveVideo(params) {
        return command({
            method: 'setStartReceiveVideo',
            methodId: 'pNnZxweP',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setStartReceiveVoice(params) {
        return command({
            method: 'setStartReceiveVoice',
            methodId: 'pXZuumS5',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setStartSendVoice(params) {
        return command({
            method: 'setStartSendVoice',
            methodId: 'p0crQezK',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setStopReceiveVideo(params) {
        return command({
            method: 'setStopReceiveVideo',
            methodId: 'pqYhVUDw',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setStopReceiveVoice(params) {
        return command({
            method: 'setStopReceiveVoice',
            methodId: 'pj7xkPCm',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setStopSendVoice(params) {
        return command({
            method: 'setStopSendVoice',
            methodId: 'pBTQg6ql',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setTalkbackSwitch(params) {
        return command({
            method: 'setTalkbackSwitch',
            methodId: 'peHyqODx',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setTamperAlarmSwitch(params) {
        return command({
            method: 'setTamperAlarmSwitch',
            methodId: 'p3deL4H9',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }

    setWorkingMode(params) {
        return command({
            method: 'setWorkingMode',
            methodId: 'ptRSbs4I',
            params,
            to: this.to?.[this.i] || this.to,
        });
    }
}

export default SmartVideoDoorbell;
